/*
 * ResponseConsultarStatusOperacional.cpp
 *
 * @author Bematech S.A.
 */

#include "bilbao/protocol/serial/response/ResponseConsultarStatusOperacional.h"

namespace bilbao
{
	namespace protocol
	{
		namespace serial
		{
			namespace response
			{
				//--------------------------------------------------------------------------------
				// Construtor e destrutor
				//--------------------------------------------------------------------------------
				ResponseConsultarStatusOperacional::ResponseConsultarStatusOperacional(
						E_SERIAL_RESPONSE_ID eeee, ASefazResponse::E_SEFAZ_RESPONSE_ID cod,
						const util::StatusData& status )
					: ASerialResponse( eeee, cod )
				{
					_parameters.resize( 27 );
					EEEE( _id );
					Cod( _code );
					_parameters[4] = status.NSERIE;
								//Dados da rede - Inicio
					_parameters[5] = status.TIPO_LAN;
					_parameters[6] = status.LAN_IP;
					_parameters[7] = status.LAN_MAC;
					_parameters[8] = status.LAN_MASK;
					_parameters[9] = status.LAN_GW;
					_parameters[10] = status.LAN_DNS_1;
					_parameters[11] = status.LAN_DNS_2;
					_parameters[12] = status.STATUS_LAN;
								//Dados da rede - Fim
					_parameters[13] = status.NIVEL_BATERIA;
								//
					_parameters[14] = status.MT_TOTAL;
					_parameters[15] = status.MT_USADA;
								//
					_parameters[16] = status.DH_ATUAL;
					_parameters[17] = status.VER_SB;
					_parameters[18] = status.VER_LAYOUT;
					_parameters[19] = status.ULTIMO_CFE;
					_parameters[20] = status.LISTA_INICIAL;
					_parameters[21] = status.LISTA_FINAL;
					_parameters[22] = status.DH_CFE;
					_parameters[23] = status.DH_ULTIMA;
								//
					_parameters[24] = status.CERT_EMISSAO;
					_parameters[25] = status.CERT_VENCIMENTO;
								//
					_parameters[26] = status.ESTADO_OPERACAO;
				}
				//--------------------------------------------------------------------------------
				ResponseConsultarStatusOperacional::~ResponseConsultarStatusOperacional( void )
				{
					// Do nothing
				}
				//--------------------------------------------------------------------------------
				void ResponseConsultarStatusOperacional::ConteudoRetorno( const util::StatusData& status )
				{
					setParameter( 4, status.NSERIE );
													//Dados da rede - Inicio
					setParameter( 5, status.TIPO_LAN );
					setParameter( 6, status.LAN_IP );
					setParameter( 7, status.LAN_MAC );
					setParameter( 8, status.LAN_MASK );
					setParameter( 9, status.LAN_GW );
					setParameter( 10, status.LAN_DNS_1 );
					setParameter( 11, status.LAN_DNS_2 );
					setParameter( 12, status.STATUS_LAN );
													//Dados da rede - Fim
					setParameter( 13, status.NIVEL_BATERIA );
													//
					setParameter( 14, status.MT_TOTAL );
					setParameter( 15, status.MT_USADA );
													//
					setParameter( 16, status.DH_ATUAL );
					setParameter( 17, status.VER_SB );
					setParameter( 18, status.VER_LAYOUT );
					setParameter( 19, status.ULTIMO_CFE );
					setParameter( 20, status.LISTA_INICIAL );
					setParameter( 21, status.LISTA_FINAL );
					setParameter( 22, status.DH_CFE );
					setParameter( 23, status.DH_ULTIMA );
													//
					setParameter( 24, status.CERT_EMISSAO );
					setParameter( 25, status.CERT_VENCIMENTO );
													//
					setParameter( 26, status.ESTADO_OPERACAO );
				}
				//--------------------------------------------------------------------------------
				void ResponseConsultarStatusOperacional::EEEE( E_SERIAL_RESPONSE_ID eeee )
				{
					setParameter( 0, EEEEtoString( eeee ) );
					setParameter( 1, getMessageSerialResponse( eeee ) );
				}
				//--------------------------------------------------------------------------------
				void ResponseConsultarStatusOperacional::Cod( ASefazResponse::E_SEFAZ_RESPONSE_ID cod )
				{
					setParameter( 2, ASefazResponse::CODtoString( cod ) );
					setParameter( 3, ASefazResponse::getMessageSefazResponse( cod ) );
				}
				//--------------------------------------------------------------------------------

			} // namespace response
		} // namespace serial
	} // namespace protocol
} // namespace bilbao
